﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Croupier_iteration_1.Model;
using Croupier_iteration_1.ViewModel;
using Croupier_iteration_1.Model.Jeu;
namespace Croupier_iteration_1
{
    public partial class MainPage : UserControl
    {

        List<Carte> Cartes = new List<Carte>();
        List<Joueur> Joueurs = new List<Joueur>();

        public MainPage()
        {
            InitializeComponent();
            Croupier croupier = new Croupier ();
            croupier.Nom = "Croupier Nom";

            List<Joueur> Joueurs = new List<Joueur>();
            for (int i = 1; i < 5; i++)
            {
                Joueurs.Add(RemplirListJoueur(i));
            }

            RemplirJeuDeCarte();
            JeuDeCartes Jeu = new JeuDeCartes(Cartes);
            
            TableJeu table = new TableJeu(1, "Ma Table", croupier, Joueurs, Jeu);
            TableViewModel tableViewModel = new TableViewModel(table);

            tableView1.DataContext = tableViewModel;

        }

        private Joueur RemplirListJoueur(int i)
        {
            Joueur joueur = new Joueur();
            joueur.Nom = "Player " + i;
            joueur.Prenom = "Prenom";
            return joueur;
        }

        private void RemplirJeuDeCarte()
        {
            Cartes.Add(new CarteAs(Couleur.Noir, Visuel.Pique, Valeur.As));
            Cartes.Add(new CarteHabilles(Couleur.Noir, Visuel.Pique, Valeur.Roi));
            Cartes.Add(new CarteHabilles(Couleur.Noir, Visuel.Pique, Valeur.Dame));
            Cartes.Add(new CarteHabilles(Couleur.Noir, Visuel.Pique, Valeur.Valet));
            Cartes.Add(new CarteHabilles(Couleur.Noir, Visuel.Pique, Valeur.Dix));
            Cartes.Add(new CarteNeuf(Couleur.Noir, Visuel.Pique, Valeur.Neuf));
            Cartes.Add(new CarteHuit(Couleur.Noir, Visuel.Pique, Valeur.Huit));
            Cartes.Add(new CarteSept(Couleur.Noir, Visuel.Pique, Valeur.Sept));
            Cartes.Add(new CarteSix(Couleur.Noir, Visuel.Pique, Valeur.Six));
            Cartes.Add(new CarteCinq(Couleur.Noir, Visuel.Pique, Valeur.Cinq));
            Cartes.Add(new CarteQuatre(Couleur.Noir, Visuel.Pique, Valeur.Quatre));
            Cartes.Add(new CarteTrois(Couleur.Noir, Visuel.Pique, Valeur.Trois));
            Cartes.Add(new CarteDeux(Couleur.Noir, Visuel.Pique, Valeur.Deux));

            Cartes.Add(new CarteAs(Couleur.Noir, Visuel.Trefle, Valeur.As));
            Cartes.Add(new CarteHabilles(Couleur.Noir, Visuel.Trefle, Valeur.Roi));
            Cartes.Add(new CarteHabilles(Couleur.Noir, Visuel.Trefle, Valeur.Dame));
            Cartes.Add(new CarteHabilles(Couleur.Noir, Visuel.Trefle, Valeur.Valet));
            Cartes.Add(new CarteHabilles(Couleur.Noir, Visuel.Trefle, Valeur.Dix));
            Cartes.Add(new CarteNeuf(Couleur.Noir, Visuel.Trefle, Valeur.Neuf));
            Cartes.Add(new CarteHuit(Couleur.Noir, Visuel.Trefle, Valeur.Huit));
            Cartes.Add(new CarteSept(Couleur.Noir, Visuel.Trefle, Valeur.Sept));
            Cartes.Add(new CarteSix(Couleur.Noir, Visuel.Trefle, Valeur.Six));
            Cartes.Add(new CarteCinq(Couleur.Noir, Visuel.Trefle, Valeur.Cinq));
            Cartes.Add(new CarteQuatre(Couleur.Noir, Visuel.Trefle, Valeur.Quatre));
            Cartes.Add(new CarteTrois(Couleur.Noir, Visuel.Trefle, Valeur.Trois));
            Cartes.Add(new CarteDeux(Couleur.Noir, Visuel.Trefle, Valeur.Deux));

            Cartes.Add(new CarteAs(Couleur.Rouge, Visuel.Carreau, Valeur.As));
            Cartes.Add(new CarteHabilles(Couleur.Rouge, Visuel.Carreau, Valeur.Roi));
            Cartes.Add(new CarteHabilles(Couleur.Rouge, Visuel.Carreau, Valeur.Dame));
            Cartes.Add(new CarteHabilles(Couleur.Rouge, Visuel.Carreau, Valeur.Valet));
            Cartes.Add(new CarteHabilles(Couleur.Rouge, Visuel.Carreau, Valeur.Dix));
            Cartes.Add(new CarteNeuf(Couleur.Rouge, Visuel.Carreau, Valeur.Neuf));
            Cartes.Add(new CarteHuit(Couleur.Rouge, Visuel.Carreau, Valeur.Huit));
            Cartes.Add(new CarteSept(Couleur.Rouge, Visuel.Carreau, Valeur.Sept));
            Cartes.Add(new CarteSix(Couleur.Rouge, Visuel.Carreau, Valeur.Six));
            Cartes.Add(new CarteCinq(Couleur.Rouge, Visuel.Carreau, Valeur.Cinq));
            Cartes.Add(new CarteQuatre(Couleur.Rouge, Visuel.Carreau, Valeur.Quatre));
            Cartes.Add(new CarteTrois(Couleur.Rouge, Visuel.Carreau, Valeur.Trois));
            Cartes.Add(new CarteDeux(Couleur.Rouge, Visuel.Carreau, Valeur.Deux));

            Cartes.Add(new CarteAs(Couleur.Rouge, Visuel.Coeur, Valeur.As));
            Cartes.Add(new CarteHabilles(Couleur.Rouge, Visuel.Coeur, Valeur.Roi));
            Cartes.Add(new CarteHabilles(Couleur.Rouge, Visuel.Coeur, Valeur.Dame));
            Cartes.Add(new CarteHabilles(Couleur.Rouge, Visuel.Coeur, Valeur.Valet));
            Cartes.Add(new CarteHabilles(Couleur.Rouge, Visuel.Coeur, Valeur.Dix));
            Cartes.Add(new CarteNeuf(Couleur.Rouge, Visuel.Coeur, Valeur.Neuf));
            Cartes.Add(new CarteHuit(Couleur.Rouge, Visuel.Coeur, Valeur.Huit));
            Cartes.Add(new CarteSept(Couleur.Rouge, Visuel.Coeur, Valeur.Sept));
            Cartes.Add(new CarteSix(Couleur.Rouge, Visuel.Coeur, Valeur.Six));
            Cartes.Add(new CarteCinq(Couleur.Rouge, Visuel.Coeur, Valeur.Cinq));
            Cartes.Add(new CarteQuatre(Couleur.Rouge, Visuel.Coeur, Valeur.Quatre));
            Cartes.Add(new CarteTrois(Couleur.Rouge, Visuel.Coeur, Valeur.Trois));
            Cartes.Add(new CarteDeux(Couleur.Rouge, Visuel.Coeur, Valeur.Deux));
        }
    }

    
}
